package com.rbac.admin.service.auth;

import com.rbac.admin.dto.auth.LoginDTO;
import com.rbac.admin.dto.auth.LoginResultDTO;
import com.rbac.admin.vo.system.UserVO;

/**
 * 认证服务接口
 * 
 * @author rbac-admin
 * @since 2024-07-18
 */
public interface AuthService {
    
    /**
     * 登录
     * 
     * @param loginDTO 登录信息
     * @return 登录结果
     */
    LoginResultDTO login(LoginDTO loginDTO);
    
    /**
     * 登出
     */
    void logout();
    
    /**
     * 获取当前用户信息
     * 
     * @return 用户信息
     */
    UserVO getCurrentUserInfo();
    
    /**
     * 刷新令牌
     * 
     * @param refreshToken 刷新令牌
     * @return 新的访问令牌
     */
    String refreshToken(String refreshToken);
} 